import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Insecto matriarca, es eliminado mediante 20 descargas.
 * 
 * @author Alejandro Caldera
 * @version (a version number or a date)
 */
public class MomAlone extends Plaga
{
    /**
     * Act - do whatever the Ins1 wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    private int angulo;
    int shotstaken=0; //tiros recibidos.
    
    
   
   public MomAlone(int a)
   {
      angulo=a; 
   }
   
   public MomAlone()
   {
     angulo=0; 
   }
    public void act() 
    {
        move(7);
        rebota();
       
       
          if (encontroEtiqueta())
          turn(30);
          
          if(encontroOvni())
          turn(44);
          
          if (encontroFumigador())
          {
           setLocation (500,getY());  
          }
          // Detecta si recibió disparo y aumenta 1 a los disparos recibidos.
          Actor bullet = getOneIntersectingObject(Bullet.class);
           if (bullet!= null)
          {
              Health.shotstaken= Health.shotstaken+1;
              getWorld().removeObject(bullet);
             if(Health.shotstaken==20)
                getWorld().removeObject(this);
              
              
            }
         
          
  }
    
   /**
       Función que detecta si se ha llegado a los límites del escenario y gira al actor .
     */
    
    public void rebota()
    {
        int x=super.getX();
        int y=super.getY();
        
         
         //1.acceder al mundo con getWorld()
         World mundo=super.getWorld();
         //2. acceder al ancho del mundo con getWidth();
         int ancho=mundo.getWidth();
         //3.acceder al alto con getHeight();
         int alto=mundo.getHeight();
        
         if(x==ancho-1||x==0||y==alto-1||y==0)
         turn(75);
    
    }
    /**
       Funciones  booleanas que detectan si se ha encontrado una etiqueta, o un obstáculo,de ser así regresa un true de lo contrario un false.
     */ 
    public boolean encontroOvni()
    {
        Actor ovni=null;
        
       ovni=getOneIntersectingObject(Ovni.class);
         if (ovni!= null)
            return true;
        else
            return false;
    }
    
    
    public boolean encontroEtiqueta()
    {
        Actor etiqueta=null;
        
        etiqueta=getOneIntersectingObject(Label.class);
         if (etiqueta!= null)
            return true;
        else
            return false;
    }
    
     public boolean encontroFumigador()
    {
        Actor player = getOneIntersectingObject( Fumigador.class);
        if(player != null) {
            return true;
        }
        else {
            return false;
        }
    } 
    
}